home *** CD-ROM | disk | FTP | other *** search
- Class Form :Object
- ! text !
- [
- new
- text <- Array new: 0
- |
- clipFrom: upperLeft to: lowerRight
- ! newForm newRow rsize left top rText !
-
- left <- upperLeft y - 1. " left hand side"
- top <- upperLeft x - 1.
- rsize <- lowerRight y - left.
- newForm <- Form new.
-
- (upperLeft x to: lowerRight x)
- do: [:i |
- newRow <- String new: rsize.
- rText <- self row: i.
-
- (1 to: rsize)
- do: [:j |
- newRow at: j
- put: (rText at: (left + j)
- ifAbsent: [$ ])
- ].
-
- newForm row: (i - top) put: newRow
- ].
- ^ newForm
- |
- columns
- ^ text inject: 0 into: [:x :y | x max: y size ]
- |
- display
- smalltalk clearScreen. "If implemented!"
- self printAt: 1 @ 1.
- ' ' printAt: 20 @ 0
- |
- eraseAt: aPoint ! location !
- location <- aPoint copy.
- text do: [:x | (String new: (x size)) printAt: location.
- location x: (location x + 1) ]
- |
- extent
- ^ self rows @ self columns
- |
- first
- ^ text first
- |
- next
- ^ text next
- |
- overLayForm: sourceForm at: startingPoint
- ! newRowNum rowText left rowSize !
-
- newRowNum <- startingPoint x.
- left <- startingPoint y - 1.
-
- sourceForm do: [:sourceRow |
-
- rowText <- self row: newRowNum.
- rowSize <- sourceRow size.
- rowText <- rowText padTo: (left + rowSize).
-
- (1 to: rowSize) do: [:i |
- ((sourceRow at: i) ~= $ )
- ifTrue: [ rowText at: (left + i)
- put: (sourceRow at: i)]].
-
- self row: newRowNum put: rowText.
- newRowNum <- newRowNum + 1]
- |
- placeForm: sourceForm at: startingPoint
- ! newRowNum rowText left rowSize !
-
- newRowNum <- startingPoint x.
- left <- startingPoint y - 1.
-
- sourceForm do: [:sourceRow |
- rowText <- self row: newRowNum.
- rowSize <- sourceRow size.
-
- rowText <- rowText padTo: (left + rowSize).
- (1 to: rowSize) do: [:i |
- rowText at: (left + i)
- put: (sourceRow at: i)].
-
- self row: newRowNum put: rowText.
- newRowNum <- newRowNum + 1]
- |
- reversed ! newForm columns newRow !
- columns <- self columns.
- newForm <- Form new.
-
- (1 to: self rows) do: [:i |
- newRow <- text at: i.
- newRow <- newRow ,
- (String new: (columns - newRow size)).
- newForm row: i put: newRow reversed ].
-
- ^ newForm
- |
- rotated ! newForm rows newRow !
- rows <- self rows.
- newForm <- Form new.
-
- (1 to: self columns) do: [:i |
- newRow <- String new: rows.
-
- (1 to: rows) do: [:j |
- newRow at: ((rows - j) + 1)
- put: ((text at: j)
- at: i ifAbsent: [$ ])].
-
- newForm row: i put: newRow ].
-
- ^ newForm
- |
- row: index
- ^ text at: index ifAbsent: ['']
- |
- row: index put: aString
- (index > text size)
- ifTrue: [ [text size < index] whileTrue:
- [text <- text grow: ''] ].
-
- text at: index put: aString
- |
- rows
- ^ text size
- |
- printAt: aPoint ! location !
- location <- aPoint copy.
- text do: [:x | x printAt: location.
- location x: (location x + 1) ]
- ]
-